from multiprocessing import Pool
import time
import os

def task(name):
    print(f'执行子进程pid:{os.getpid()}======{name}')
    time.sleep(1)

if __name__ == '__main__':
    print('父进程开始')
    start = time.time()
    # 创建进程池
    p = Pool(3)

    for i in range(10):
        p.apply_async(task, args=(i,)) # 非阻塞的方式，3个3个的执行，用时4s多
        # p.apply(task, args=(i,)) # 阻塞，用时10s多

    p.close() # 不再接受新任务
    p.join() # 等待所有子进程执行完毕

    print(f'用时：{time.time()-start}')
    print('主进程结束')
